博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PHP左侧菜单栏的管理与实现
阅读量:5937 次
发布时间:2019-06-19

本文共 2615 字,大约阅读时间需要 8 分钟。

以thinkPHP5.0为例后台config.php文件里配置
//配置文件设置菜单内容属性'menu' => [  [    'name' => '菜单栏1',    'url' => '/admin/index/one',    'status'=> 0,    'sub'=> 0  ],  [    'name' => '菜单栏2',    'url' => '#',    'status'=> 0,    'sub'=>[        [          'name' => '子菜单栏1',          'url' => '/admin/user/one',          'status'=> 0,        ],        [          'name' => '子菜单栏2',          'url' => '/admin/user/two'),          'status'=> 0,        ],    ]  ],  [    'name'=> '菜单栏3',    'url' => '#',    'status'=> 0,    'sub'=>[        [          'name' => '子菜单栏1',          'url' => '/admin/admin/one',          'status'=> 0,        ],        [          'name' => '子菜单栏2',          'url' =>url('/admin/admin/two'),          'status' => 0,        ],    ]  ],  [    'name' => '菜单栏4',    'url' => '/admin/order/one',    'status'=> 0,    'sub'=> 0  ]]
 

  

在项目后台初始化方法里base
class Base extends Controller{    protected function _initialize()    {        $request = Request::instance();        if (session('uid') === null) {            $this->redirect('Simple/login');        }        $menu = Config::get('menu'); //获取配置文件里的菜单数据        $clickUrl = $request->path(); //获取当前请求的地址        $clickUrl = '/' . $clickUrl;        $menuData = setMenu($menu, $clickUrl); //对每个配置项进行状态设置        $this->assign('menu', $menuData);    }}
 

  

后台common.php文件
function setMenu($menuData,$url){    if (!is_array($menuData)){        return false;    }    foreach ($menuData as $key => $value) {        if($value['url'] == '#'){            foreach ($value['sub'] as $k => $v) {                if($v['url'] == $url){                    $menuData[$key]['status'] = 1;     //改变当前访问的子菜单栏状态                    $menuData[$key]['sub'][$k]['status'] = 1;  //改变当前当前的菜单栏状态                }            }        } else {            $menuData[$key]['status'] = 1;        }    }    return $menuData;}
 

  

布局页面上view判断菜单栏及子菜单栏的status状态

  

 

转载于:https://www.cnblogs.com/qhorse/p/10038190.html

你可能感兴趣的文章
Android写的一个设置图片查看器,可以调整透明度
查看>>
第 5 章 File Share
查看>>
判断字符串解析是JsonObject或者JsonArray
查看>>
[LeetCode] Implement strStr()
查看>>
多模块Struts应用程序的几个问题(及部分解决方法)
查看>>
1.2. MariaDB
查看>>
SpringSide示例之HelloWorld
查看>>
LINQ-to-SQL那点事~LINQ-to-SQL中的并发冲突与应对
查看>>
日志不说谎--Asp.net的生命周期
查看>>
C#~异步编程续~.net4.5主推的await&async应用
查看>>
C#进行MapX二次开发之图层操作
查看>>
ASP.NET 运行机制详解
查看>>
C++ little errors , Big problem
查看>>
在 ML2 中配置 OVS vlan network - 每天5分钟玩转 OpenStack(136)
查看>>
Selenium2+python自动化34-获取百度输入联想词
查看>>
【★★★★★】提高PHP代码质量的36个技巧
查看>>
如何解决/home/oracle: is a directory报警
查看>>
python基础学习笔记(九)
查看>>
BaaS API 设计规范
查看>>
bootloader功能介绍/时钟初始化设置/串口工作原理/内存工作原理/NandFlash工作原理...
查看>>